package com.jwsoft.manager.core.integration;

import com.github.pagehelper.PageInfo;
import com.jwsoft.manager.common.vo.eduAddressSchool.EduAddressSchoolKeyVO;
import com.jwsoft.manager.common.vo.eduAddressSchool.EduAddressSchoolQueryVO;
import com.jwsoft.manager.common.vo.eduAddressSchool.EduAddressSchoolSearchVO;
import com.jwsoft.manager.common.vo.eduAddressSchool.EduAddressSchoolVO;
import com.jwsoft.manager.common.vo.eduAddressSchoolAudit.EduAddressSchoolAuditQueryVO;
import com.jwsoft.manager.common.vo.eduAddressSchoolAudit.EduAddressSchoolAuditVO;

/**
 * 地址学校关联表业务本地接口
 *
 * @author wangtao
 * @since 2022-12-02
 */
public interface EduAddressSchoolIntegration {
    /**
     * 分页查询
     */
    PageInfo<EduAddressSchoolVO> getList(EduAddressSchoolQueryVO vo);

    /**
     * 根据主键查询详情
     */
    EduAddressSchoolVO getById(EduAddressSchoolKeyVO vo);

    /**
     * 保存前统一校验
     */
    void checkSave(EduAddressSchoolVO vo);

    /**
     * 新增学校-地址关联
     *
     * @param vo 学校-地址关联信息
     * @return 学校-地址关联信息
     * @author fangs
     */
    EduAddressSchoolVO add(EduAddressSchoolVO vo);
    void addBatch(EduAddressSchoolVO vo);

    /**
     * 修改
     */
    EduAddressSchoolVO edit(EduAddressSchoolVO vo);

    /**
     * 根据主键删除
     */
    void del(EduAddressSchoolKeyVO vo);

    //学校地址预警取消关联
    void delByErrors(EduAddressSchoolKeyVO vo);

    /**
     * 根据主键删除批量
     */
    void delBatch(EduAddressSchoolKeyVO vo);

    /**
     * 查询待审核信息
     *
     * @param vo 参数
     * @return 待审核的信息
     * @author fangs
     */
    PageInfo<EduAddressSchoolAuditVO> queryAddressSchoolAudit(EduAddressSchoolAuditQueryVO vo);

    /**
     * 地址审核
     *
     * @param auditVO 审核数据
     * @author fangs
     */
    void doAudit(EduAddressSchoolAuditVO auditVO);
    /**
     * 地址审核批量
     *
     * @param auditVO 审核数据
     * @author fangs
     */
    void doAuditBatch(EduAddressSchoolAuditVO auditVO);

    /** 关联地址信息查询 */
    PageInfo<EduAddressSchoolVO> queryAddress(EduAddressSchoolSearchVO vo);

    /**
     * 地址审核接口
     * @param vo
     */
    void addressAudit(EduAddressSchoolAuditVO vo);

    void addressAuditAuto(EduAddressSchoolAuditVO vo);

    /**
     * 学校本年度地址库查询
     * @param vo
     * @return
     */
    PageInfo<EduAddressSchoolVO> querySchoolAddressByNowYear(EduAddressSchoolQueryVO vo);

    PageInfo<EduAddressSchoolVO> nowYearNoRelationAddress(EduAddressSchoolSearchVO vo);

    /**
     * 查询本年学校审核不通过的信息
     * @param vo
     * @return
     */
    PageInfo<EduAddressSchoolAuditVO> queryNoPassAuditAddressSchoolAudit(EduAddressSchoolAuditQueryVO vo);

    /**
     * 审核失败地址退回审核通过
     * @param vo
     */
    void noPassAddressAudit(EduAddressSchoolAuditVO vo);

    void batchDelete(EduAddressSchoolKeyVO vo);

    void batchUpdate(EduAddressSchoolKeyVO vo);
}
